Scroll to navigation

XMODMAP(1) X Version 11 XMODMAP(1)

NOM

xmodmap - Modifier les correspondances entre les keysyms et les keycodes sous X, et les affectations des boutons du pointeur

SYNOPSIS

xmodmap [-options ...] [nom_de_fichier]

DESCRIPTION

Le programme xmodmap est utilisé pour éditer et afficher la table des modificateurs du clavier et la table de correspondance utilisées par les applications clientes pour convertir les keycodes (événements clavier) en keysyms (symboles utilisés par les applications clientes). Il est habituellement lancé par le script de démarrage de session de l'utilisateur afin d'accorder le clavier à ses propres goûts.

OPTIONS

Les options suivantes peuvent être utilisées avec xmodmap

Cette option spécifie l'hôte et le display à utiliser.
Cette option indique qu'une brève description des arguments de la ligne de commande doit être affichée sur la sortie d'erreur standard. Cela se produit également dès qu'un argument non valide est passé en argument à xmodmap.
Cette option indique qu'un message d'aide décrivant la grammaire des expressions utilisées dans les fichiers et avec l'option -e doit être affichée sur la sortie d'erreur standard.
Cette option (mode verbeux) indique que xmodmap doit afficher les informations de logging pendant qu'il analyse les entrées.
Cette option désactive le mode verbeux. C'est le mode par défaut.
Cette option indique que xmodmap ne doit pas changer les correspondances mais doit juste afficher ce qu'il doit faire ; de la même manière que make(1) quand on lui passe cette option.
Cette option indique une expression à exécuter. En répétant -e, on peut spécifier plusieurs expressions depuis la ligne de commande.
Cette option indique que la table des modificateurs doit être affichée sur la sortie standard.
Cette option indique que la table des correspondances doit être affichée sur la sortie standard.
Cette option indique que la table des correspondances doit être affichée sur la sortie standard sous la forme d'expressions pouvant être passées en argument à xmodmap.
Cette option indique que la table du pointeur courante doit être affichée sur la sortie standard.
-
Un tiret seul signifie que l'entrée standard doit être utilisée comme fichier d'entrée.

nom_de_fichier indique un fichier contenant des expressions devant être exécutées par xmodmap. Ce fichier est en général stocké dans le répertoire principal de l'utilisateur sous un nom tel que .xmodmaprc.

GRAMMAIRE DES EXPRESSIONS

Le programme xmodmap lit une liste d'expressions et les analyse toutes avant de tenter d'exécuter l'une d'entre elles. Cela permet de se référer à des keysyms qui ont été redéfinis sans avoir à se préoccuper des conflits de noms.

La liste des keysyms est assignée au keycode indiqué (qui peut être spécifié en décimal, hexa ou octal et peut être déterminé grâce au programme xev.RB )

Si aucune touche existante ne possède cette liste de keysyms, une touche libre sur le clavier est sélectionnée et les keysyms lui sont assignés. La liste des keysyms peut être spécifiée en décimal, hexa ou octal.
Le KEYSYMNAME en partie gauche est traduit en keycode utilisé pour effectuer l'ensemble des expressions keycode correspondantes.

La liste des noms des keysym peut être trouvée dans le fichier d'en-tête : <X11/keysymdef.h> (sans le prefix XK_) ou dans la base de donnée des keysyms <XRoot>/lib/X11/XKeysymDB, où <XRoot> représente la racine de l'arborescence de l'installation de X11. Notez que si le même keysym est lié à plusieurs touches, l'expression est exécutée pour chaque keycode correspondant.

Cela efface toutes les entrées dans la table de modificateurs pour le modificateur donné, où les noms valides sont : Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4, et Mod5 (la casse n'a pas d'importance dans le nom des modificateurs bien qu'elle en ait pour tous les autres noms). Par exemple, « clear Lock » effacera toutes les touches qui étaient liées au modificateur <<shift lock>>

Ajoute toutes les touches contenant les keysyms donnés à la table de modificateurs indiquée. Les noms des keysyms sont évalués après que toutes les expressions d'entrée ont été lues pour rendre plus facile l'écriture d'expressions d'échange de touches (voir la section EXEMPLES).
Cela supprime toutes les touches contenant les keysyms donnés de la table du modificateur indiqué. Contrairement à add, les noms des keysyms sont évalués au moment où la ligne est lue. Cela permet de supprimer des touches d'un modificateur sans avoir à se soucier de leur ré-assignement.
Cela repositionne la table du pointeur aux réglages par défaut (le bouton 1 génère un code 1, le bouton 2 génère un 2, etc.).
Configure la table du pointeur de telle manière qu'elle contienne les codes boutons indiqués. La liste commence toujours avec le 1er bouton physique.

Les lignes qui commencent par un point d'exclamation (!) sont des commentaires.

Si vous voulez changer le lien d'une touche de modificateur, vous devez l'enlever de la table du modificateur appropriée.

EXEMPLES

La plupart des pointeurs (souris) sont conçus pour que le premier bouton soit pressé avec l'index de la main droite. Les gauchers trouvent généralement qu'il est plus confortable d'intervertir les codes de boutons générés de manière à ce que le premier bouton soit pressé avec l'index de la main gauche. Cela peut être fait sur une souris à 3 boutons de cette manière :

%  xmodmap -e "pointer = 3 2 1"

Beaucoup d'applications supportent la notion de << touche Meta >> (équivalente à la touche Control). Cependant certains serveurs n'ont pas de keysym Meta dans la table des keymap par défaut. Celui-ci doit donc être ajouté manuellement.

La commande suivante attache Meta à la touche Multi-langage (parfois indiquée par Compose). Cela tire avantage du fait que les applications qui ont besoin d'une touche Meta nécessitent simplement d'avoir le keycode et ne requièrent pas que le keysym soit dans la première colonne de la table des keymap. Cela signifie que les applications qui cherchent une touche Multi_key (y compris la table de modificateur par défaut) n'y verront aucun changement.

%  xmodmap -e "keysym Multi_key = Multi_key Meta_L"

De la même manière, certain claviers ont une touche Alt, mais pas de touche Meta. Dans ce cas, la commande suivante peut être utile :

%  xmodmap -e "keysym Alt_L = Meta_L Alt_L"

Une des plus simples, mais pratique, utilisations de xmodmap est de changer la touche <Suppr.> (ou <delete>) pour générer un keysym différent. Cela implique généralement d'échanger Backspace avec Delete pour plus de confort d'utilisation. (NDT : C'est à dire : faire que delete efface le caractère sur le curseur et non le précédent)
Si la ressource ttyModes dans xterm est positionnée convenablement, toutes les fenêtres des émulateurs de terminaux utiliseront la même touche pour effacer les caractères :

%  xmodmap -e "keysym BackSpace = Delete"
%  echo "XTerm*ttyModes:  erase ^?" | xrdb -merge

Certains claviers ne génèrent pas automatiquement les caractères "plus petit que <" et "plus grand que >" quand le point et la virgule sont shiftés. On peut remédier à cela avec xmodmap en ré-affectant les touches point et virgule avec le script suivant :

!
! make shift-, be < and shift-. be >
!
keysym comma = comma less
keysym period = period greater

L'une des plus irritantes différences ente les claviers est la position des touches Control et CapsLock. Une utilisation habituelle de xmodmap est pour échanger ces deux touches :

!
! Swap Caps_Lock and Control_L
!
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L

La commande keycode est très utile pour assigner le même keysym à de multiples keycodes. Bien que non portable, cette méthode rend possible l'écriture de scripts qui peuvent réinitialiser le clavier à un état connu. Le script suivant définit la touche backspace pour générer Delete (comme vu précédemment), flush tous les liens avec caps lock, fait de la touche CapsLock une touche Control, fait que F5 génère Escape, et fait que Break/Reset soit shift lock.

! sur HP, les keycodes suivants sont étiquetés :
!
!     101  Backspace
!      55  Caps
!      14  Ctrl
!      15  Break/Reset
!      86  Stop
!      89  F5
!
keycode 101 = Delete
keycode 55 = Control_R
clear Lock
add Control = Control_R
keycode 89 = Escape
keycode 15 = Caps_Lock
add Lock = Caps_Lock

ENVIRONNEMENT

pour avoir l'hôte par défaut et le numéro du display.

VOIR AUSSI

X(7x), xev(1), la documentation Xlib sur les touches et les événements du pointeur

BOGUES

Chaque fois qu'une expression keycode est évaluée, le serveur génère un événement MappingNotify sur chaque client. Cela peut causer quelques crash. Tous les changements devraient être groupés et exécutés ensembles. Les clients qui reçoivent une entrée clavier et ignorent les événements MappingNotify ne serons pas prévenus des changement effectués aux correspondances clavier.

Xmodmap devrait générer les expressions « add » et « remove » automatiquement toutes les fois ou un keycode déjà lié à un modificateur est changé.

Cela pourrait être une manière pour que l'expression remove accepte les keycodes aussi bien que les keysyms dans le cas ou vous mettriez vraiment le boxon dans les mappings.

AUTEUR

Jim Fulton (MIT X Consortium) ré-écrit à partir d'une précédente version de David Rosenthal (Sun Microsystems).

TRADUCTION

Cyril Guilloud, 2002 guilloud@lautre.net

Revision 6.5